home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / internet / net commander 1.0 / DISK1 / GTR_INST.MS_ / GTR_INST.MS
Encoding:
Text File  |  1996-04-18  |  45.8 KB  |  1,415 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '*
  4. '* Setup script for Enhanced Mosaic.  This file is based upon the sample
  5. '* file "\win32s\setup\32sinst.mst" provided with the Win32 SDK (3.1 final
  6. '* release; win32s version 1.1).
  7. '*
  8. '**************************************************************************
  9.  
  10. '$DEFINE DEBUG  ''Define for script development/debugging
  11.  
  12. '$INCLUDE 'setupapi.inc'
  13. '$INCLUDE 'msdetect.inc'
  14.  
  15. CONST SW_SHOWMAXIMIZED = 3
  16. DECLARE FUNCTION ShowWindow LIB "user" (hWnd%, nCmdShow%) AS INTEGER
  17.  
  18. ''****************************************************************************
  19. ''****************************************************************************
  20. ''*** Spyglass Transform Installation Dialog ID Numbers
  21. ''*** (These values must match the values in DIALOGS.H)
  22. ''****************************************************************************
  23. ''****************************************************************************
  24.  
  25. CONST WEINSTALLEDWIN32S      = 4000
  26. CONST ALREADYHAVEWIN32S      = 4100
  27. CONST KERNELHAS32            = 4200
  28. CONST ASKQUIT                = 500
  29. CONST BADPATH                = 1400
  30.  
  31. CONST TRANSFORMWELCOME       = 100
  32. CONST TRANSFORMINSTALLED     = 200
  33. CONST TRANSFORMPATH          = 300
  34. CONST RESTARTINGWINDOWS      = 400
  35. CONST WANTSAMPLEDATA         = 600
  36. CONST INSTALLOLDER           = 700
  37.  
  38. CONST WIN32SWELCOME          = 1100
  39. CONST VERPATH                = 1200
  40.  
  41. CONST EXITFAILURE            = 2100
  42. CONST EXITQUIT               = 2200
  43. CONST EXITFAILNOTWIN31       = 2300
  44. CONST EXITFAILNOTENH         = 2400
  45. CONST EXITFAILNOTINTEL       = 2500
  46. CONST EXITEXIT               = 2600
  47. CONST TOOLSDLG               = 2700 '' WW Tools dialog
  48. CONST WARNDIAL               = 6304 '' Warning to install dial up networking
  49. CONST WARNSCRIPT             = 6305 '' Warning to install dial up scripting and networking
  50. CONST EXPLORERDLG            = 6306 '' Dialog box to prompt for Microsoft Internet Explorer
  51. CONST BILLBOARDWIN32S        = 5000
  52. CONST BILLBOARDTCPPRO        = 5010
  53. CONST BILLBOARDTELNET        = 5020
  54. CONST BILLBOARDFTP           = 5030
  55. CONST BILLBOARDFINGER        = 5040
  56. CONST BILLBOARDARCHIE        = 5050
  57. CONST BILLBOARDEUDORA        = 5060
  58. CONST BILLBOARDNEWS          = 5070
  59. CONST BILLBOARDYELLOW        = 5080
  60. CONST BILLBOARDIRC           = 5090
  61. CONST BILLBOARDWEBSEARCH     = 5100
  62. CONST BILLBOARDWHOIS         = 5110
  63. CONST BILLBOARDMOSAIC        = 5120
  64. CONST BILLBOARDGOPHER        = 5130
  65. CONST BILLBOARDWEBINSTALL    = 5140
  66. CONST BILLBOARDPHONE         = 5150
  67. CONST BILLBOARDVOICE         = 5160
  68.  
  69. CONST BILLBOARDCOPYING       = 6307  
  70. CONST TRANSFORMINSTALLED32   = 6308
  71.  
  72. ''Bitmap ID
  73. CONST LOGO = 1
  74.  
  75. GLOBAL DESTSYS$      ''Windows\System directory.
  76. GLOBAL DEST32S$      ''Windows\System\Win32s directory
  77.  
  78. ''****************************************************************************
  79. ''****************************************************************************
  80. ''*** Spyglass Transform Pathname for Installation
  81. ''****************************************************************************
  82. ''****************************************************************************
  83.  
  84. GLOBAL DESTXF$     ''Spyglass Transform Directory
  85. GLOBAL DESTTCP$    ''Stack and Dialer Directory
  86. GLOBAL RADEST$     ''real audio dest directory
  87. GLOBAL szExplPath$ '' mircosoft explorer path
  88.  
  89. DECLARE SUB DoWin32sInstallation
  90. DECLARE SUB UpdateSystemIni
  91. DECLARE SUB RebootSystem
  92. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  93. DECLARE FUNCTION MakeSystemIni LIB "INIUPD.DLL" (arg1$, arg2$) AS INTEGER
  94. DECLARE FUNCTION RestartWindows LIB "INIUPD.DLL" AS INTEGER
  95. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  96. DECLARE FUNCTION PagingEnabled LIB "INIUPD.DLL" AS INTEGER
  97. DECLARE FUNCTION ShareEnabled LIB "INIUPD.DLL" AS INTEGER
  98. DECLARE FUNCTION IsWin32sLoaded LIB "INIUPD.DLL" (arg1$) AS INTEGER
  99. DECLARE FUNCTION ExitWindowsExec LIB "USER.EXE" (arg1$, arg2$) AS INTEGER
  100. DECLARE FUNCTION WinExec LIB "KRNL386.EXE" (arg1$, arg2%) AS INTEGER
  101.  
  102. INIT:
  103.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  104.     HELPPROC$ = "FHelpDlgProc"        ''Help dialog procedure
  105.     szOldVer$ ="1.00.000     "        ''Reserve space in string for version
  106. ''    GLOBAL AlwaysCopy%
  107. ''    AlwaysCopy% = 0
  108.     BoolWeInstalledWin32s% = 0
  109.     BoolKernelSupports32% = 0
  110.  
  111.     BoolWeInstalledTCPPro% = 0        ''Stack and Dialer install flag
  112.     BoolInstallEudora% = 0        ''Eudora Install flag
  113.     BoolInstallNews% = 0        ''News Install Flag
  114.     BoolInstallWhoIs% = 0        ''WhoIs Install Flag
  115.     BoolInstallArchie% = 0        ''Archie Install flag
  116.     BoolInstallFinger% = 0        ''Finger Install Flag
  117.     BoolInstallIRC% = 0            ''IRC Install Flag
  118.     BoolInstallGopher% = 0        ''Gopher Install Flag
  119. ''    BoolInstallYellowPages% = 0    ''Yellow Pages Install Flag
  120.     BoolInstallWebInstall% = 0        ''Web Install Install Flag
  121.     
  122. '' IMPORTANT !!!!!!! - WHEN     BoolInstallVoice% == 0 WE ARE INSTALLING Internet Voice Chat
  123. '' !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  124.  
  125.     BoolInstallVoice% = 0        ''Internet Voice Chat Install Flag
  126.     BoolInstallPhone% = 0               ''Internet Phone Install Flag
  127.     BoolInstallSeeMe% = 0        ''CuSeeMe Install Flag
  128.     BoolInstallTrueSpeech% = 0   ''TrueSpeech Install Flag
  129.  
  130.  
  131.     BoolScriptingRequired% = 1           ''Dial-up scripting is required for this provider
  132.  
  133.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  134.  
  135.     SetBitmap CUIDLL$, LOGO
  136.     SetTitle "Net Commander"
  137.  
  138.     '' maximize the window
  139.     hwndSetup% = HwndFrame()
  140.     nRet% = ShowWindow (hwndSetup%, SW_SHOWMAXIMIZED)
  141.  
  142.     '' put the gauge in the lower right corner
  143.     SetCopyGaugePosition 160, 170
  144.  
  145.     '' moved here since many things can force a restart
  146. ''    SetRestartDir GetWindowsDir()
  147.  
  148.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  149.     IF szInf$ = "" THEN
  150.     szInf$ = GetSymbolValue("STF_CWDDIR") + "guitar.inf"
  151.     END IF
  152.     ReadInfFile szInf$
  153.  
  154. ''****************************************************************************
  155. ''****************************************************************************
  156. ''***
  157. ''*** Spyglass Transform Greeting.
  158. ''***
  159. ''****************************************************************************
  160. ''****************************************************************************
  161.  
  162. TRANSFORMWELCOME:
  163.  
  164.     sz$ = UIStartDlg(CUIDLL$, TRANSFORMWELCOME, "FInfoDlgProc", 0, "")
  165.     IF sz$ = "CONTINUE" THEN
  166.     UIPop 1
  167.     ELSE
  168.     GOSUB ASKQUIT
  169.     GOTO TRANSFORMWELCOME
  170.     END IF
  171.  
  172.     szXFNewVer$ = GetIniKeyString(SrcDir$ + "EMOSAIC.INI", "Version", "Build")
  173.     szXFRelease$ = GetIniKeyString(SrcDir$ + "EMOSAIC.INI", "Version", "Release")
  174.  
  175.  
  176.  
  177. ''****************************************************************************
  178. ''****************************************************************************
  179. ''***
  180. ''*** Determine if Win32s is necessary.
  181. ''***
  182. ''****************************************************************************
  183. ''****************************************************************************
  184.  
  185.     ON ERROR GOTO ERRNORMALWIN32S
  186.     DESTSYS$ = GetWindowsSysDir()
  187.     DEST32S$ = DESTSYS + "WIN32S\"
  188.  
  189.  
  190. ''****************************************************************************
  191. ''*** Determine if computer system is capable is using Win32s.
  192. ''****************************************************************************
  193.  
  194. CHECK:
  195.  
  196.     IF GetWindowsMajorVersion < 3 THEN
  197.     ExitCode% = EXITFAILNOTWIN31
  198.     GOTO QUITWIN32S
  199.     END IF
  200.     IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 10 THEN
  201.     ExitCode% = EXITFAILNOTWIN31
  202.     GOTO QUITWIN32S
  203.     END IF
  204.     '' Check that we are not runnig on Chicago, including pre-released
  205.     '' Chicago versions.
  206.     IF GetWindowsMajorVersion * 100 + GetWindowsMinorVersion > 350 THEN
  207.     GOTO KERNEL32
  208.     END IF
  209.     IF GetWindowsMode < 2  THEN
  210.     IF OnWindowsNT() THEN
  211.        ExitCode% = EXITFAILNOTINTEL    '' Running on Windows NT (on RISC)
  212.     ELSE
  213.        ExitCode% = EXITFAILNOTENH    '' Standard Mode Windows
  214.     END IF
  215.     GOTO QUITWIN32S
  216.     END IF
  217.     IF OnWindowsNT() THEN
  218.     GOTO KERNEL32
  219.     END IF
  220.  
  221. ''****************************************************************************
  222. ''*** See if our version is newer than the one on the system or the one on the
  223. ''*** system was not completely installed.
  224. ''****************************************************************************
  225.  
  226.     '' Get version of Win32s to be installed from version info in file
  227.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  228.     szNewVer$ = GetVersionOfFile(SrcDir$ + "WIN32S16.DLL" )
  229.  
  230.     '' Check if Win32s is partially installed
  231.     sz$ = GetIniKeyString (DESTSYS$ + "WIN32S.INI", "Win32s", "Setup")
  232.     '' If WIN32S.INI specifies Setup=0, then force complete Win32s file overwrite
  233.     IF sz$ = "0" THEN
  234. ''    AlwaysCopy% = 1
  235.     GOTO INSTALLWIN32S
  236.     END IF
  237.     '' If WIN32S.INI is missing, try and reinstall Win32s files/recreate WIN32S.INI
  238.     IF sz$ <> "1" THEN
  239.     GOTO INSTALLWIN32S
  240.     END IF
  241.  
  242.     '' If Win32s is already installed, get running version number
  243.     i% = DoesFileExist( DESTSYS$ + "W32SYS.DLL", femExists )
  244.     IF i% = 1 THEN
  245.     i% = IsWin32sLoaded( szOldVer$ )
  246.     ENDIF
  247.  
  248.     IF i% = 0 THEN
  249.     GOTO INSTALLWIN32S
  250.     END IF
  251.     IF szNewVer$ > szOldVer$ THEN
  252.     GOTO INSTALLWIN32S
  253.     END IF
  254.     GOTO ALREADYHAVEWIN32S
  255.  
  256.  
  257. ''****************************************************************************
  258. ''****************************************************************************
  259. ''***
  260. ''*** We must attempt to install Win32s.
  261. ''***
  262. ''****************************************************************************
  263. ''****************************************************************************
  264.  
  265. INSTALLWIN32S:
  266.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  267.     ClearCopyList
  268.     AddSectionFilesToCopyList "Windows16System", SrcDir$, DESTSYS$
  269.     CopyFilesInCopyList
  270.  
  271.     sz$ = UIStartDlg(CUIDLL$, WIN32SWELCOME, "FInfoDlgProc", 0, "")
  272.     IF sz$ = "CONTINUE" THEN
  273.     UIPop 1
  274.     ELSE
  275.     GOSUB ASKQUIT
  276.     GOTO INSTALLWIN32S
  277.     END IF
  278.  
  279.  
  280. GETWIN32SPATH:
  281.     IF PagingEnabled() = 0 THEN
  282.     i% = DoMsgBox("Use the Control Panel 386 Enhanced icon and configure Windows using the Virtual Memory option.", "Win32s requires Virtual Memory", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  283.     ExitCode% = EXITEXIT               '' Enhanced mode but not paging
  284.     GOTO QUITWIN32S
  285.     END IF
  286.  
  287.     IF ShareEnabled() = 0 THEN
  288.     i% = DoMsgBox( "Please run SHARE.EXE before starting Windows or add SHARE.EXE to your AUTOEXEC.BAT file.", "Win32s SETUP requires File Sharing", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  289.     ExitCode% = EXITEXIT              '' SHARE not loaded
  290.     GOTO QUITWIN32S
  291.     END IF
  292.  
  293.     SetSymbolValue "EditTextIn", DESTSYS$
  294.     SetSymbolValue "EditFocus", "END"
  295.  
  296. GETPATHL1:
  297.     sz$ = UIStartDlg(CUIDLL$, VERPATH, "FDispDlgProc", 0, "")
  298.  
  299.     IF sz$ = "CONTINUE" THEN
  300.     IF IsDirWritable(DESTSYS$) = 0 THEN
  301.         GOSUB BADPATH
  302.         GOTO GETPATHL1
  303.     END IF
  304.     UIPop 1
  305.     ELSEIF sz$ = "REACTIVATE" THEN
  306.     GOTO GETPATHL1
  307.     ELSEIF sz$ = "BACK" THEN
  308.     UIPop 1
  309.     GOTO INSTALLWIN32S
  310.     ELSE
  311.     GOSUB ASKQUIT
  312.     GOTO GETPATHL1
  313.     END IF
  314.  
  315. COPYFILES:
  316.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite
  317.  
  318.     '' Indicate Win32s install failure until all files known to be copied.
  319.     ExitCode% = EXITFAILURE
  320.     ERR = 0
  321.  
  322.     CreateDir DEST32S$, cmoNone
  323.     DoWin32sInstallation
  324.     UpdateSystemIni
  325.  
  326.     '' Terminate if unhandled fatal error
  327.     IF ERR <> 0 THEN
  328.     GOTO QUITWIN32S
  329.     END IF
  330.  
  331.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "1", cmoOverwrite
  332.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Version", szNewVer$, cmoOverwrite
  333.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Nls", "AnsiCP", "1252", cmoOverwrite
  334.  
  335.     BoolWeInstalledWin32s% = 1
  336.     GOTO INSTALLTRANSFORM
  337.  
  338.  
  339. KERNEL32:
  340.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  341.     ClearCopyList
  342.     AddSectionFilesToCopyList "Windows32System", SrcDir$, DESTSYS$
  343.     CopyFilesInCopyList
  344.     BoolKernelSupports32% = 1
  345.     GOTO INSTALLTRANSFORM
  346.  
  347. ALREADYHAVEWIN32S:
  348.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  349.     ClearCopyList
  350.     AddSectionFilesToCopyList "Windows16System", SrcDir$, DESTSYS$
  351.     CopyFilesInCopyList
  352.     BoolWeInstalledWin32s% = 0
  353.     GOTO INSTALLTRANSFORM
  354.  
  355.  
  356. ''****************************************************************************
  357. ''****************************************************************************
  358. ''***
  359. ''*** Win32s Error Handling.
  360. ''***
  361. ''****************************************************************************
  362. ''****************************************************************************
  363.  
  364. QUITWIN32S:
  365.     ON ERROR GOTO ERRQUIT
  366.     IF ERR = 0 THEN
  367.     dlg% = ExitCode%
  368.     ELSEIF ERR = STFQUIT THEN
  369.     dlg% = EXITQUIT
  370.     ExitCode% = EXITQUIT
  371.     ELSE
  372.     dlg% = EXITFAILURE
  373.     ExitCode% = EXITQUIT
  374.     END IF
  375.  
  376. QUITL1:
  377.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  378.     IF sz$ = "REACTIVATE" THEN
  379.     GOTO QUITL1
  380.     END IF
  381.     UIPop 1
  382.     END
  383.  
  384. '' Fatal error handler for error message routine
  385. ERRQUIT:
  386.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  387.     END
  388.  
  389. '' Bypass run-time errors. Let final dialog box display fatal error message.
  390. ERRNORMALWIN32S:
  391.     '' Check if user cancelled setup
  392.     IF ERR = STFQUIT THEN
  393.     GOTO QUITWIN32S
  394.     END IF
  395.     RESUME NEXT
  396.  
  397.  
  398.  
  399. ''****************************************************************************
  400. ''****************************************************************************
  401. ''***
  402. ''*** Start of Spyglass Transform Section.
  403. ''***
  404. ''****************************************************************************
  405. ''****************************************************************************
  406.  
  407. INSTALLTRANSFORM:
  408.     ON ERROR GOTO ERRNORMALTRANSFORM
  409.  
  410.     ''***
  411.     ''*** Tell them the status of Win32s installation and ask if they
  412.     ''*** still want to install Transform.
  413.     ''***
  414.  
  415.     IF BoolWeInstalledWin32s% = 1 THEN
  416.     sz$ = UIStartDlg(CUIDLL$, WEINSTALLEDWIN32S, "FInfoDlgProc", 0, "")
  417.     ELSE
  418.     IF BoolKernelSupports32% = 1 THEN
  419. ''    for those systems not participating in win32 installation
  420. ''    tell them that dial-up networking (and may be) dial-up scripting 
  421. ''    is required
  422.       sz$ =    "CONTINUE"
  423. ''        sz$ = UIStartDlg(CUIDLL$, KERNELHAS32, "FInfoDlgProc", 0, "")
  424.     ELSE  
  425.         sz$ = UIStartDlg(CUIDLL$, ALREADYHAVEWIN32S, "FInfoDlgProc", 0, "")
  426.     END IF
  427.     END IF
  428.     IF sz$ = "CONTINUE" THEN
  429.     UIPop 1
  430.     ELSE
  431.     GOTO QUITTRANSFORMINSTALL
  432.     END IF
  433.  
  434. SAMPLEDATA:
  435.  
  436.     ''***
  437.     ''*** Ask if they want sample data installed.
  438.     ''***
  439.  
  440. ''***    DoSampleData = 0
  441. ''***    sz$ = UIStartDlg(CUIDLL$, WANTSAMPLEDATA, "FInfoDlgProc", 0, "")
  442. ''***    IF sz$ = "CONTINUE" THEN
  443. ''***    UIPop 1
  444. ''***    DoSampleData = 1
  445. ''***    ELSEIF sz$ = "EXIT" THEN
  446. ''***    GOTO QUITTRANSFORMINSTALL
  447. ''***    ELSE
  448. ''***    UIPop 1            ''*** Skip Sample Data
  449. ''***    END IF
  450.  
  451.  
  452. GETTRANSFORMPATH:
  453.  
  454. ''*** Get Pathname
  455.  
  456.     DESTXF$ = MID$(DESTSYS$,1,3) + "NETCMDR"
  457.     SetSymbolValue "EditTextIn", DESTXF$
  458.     SetSymbolValue "EditFocus", "END"
  459.  
  460. GETTRANSFORMPATHL1:
  461.  
  462. ''*** Get Pathname Loop (get until valid)
  463.  
  464.     sz$ = UIStartDlg(CUIDLL$, TRANSFORMPATH, "FEditDlgProc", 0, "")
  465.  
  466.     IF sz$ = "CONTINUE" THEN
  467.     DESTXF$ = GetSymbolValue("EditTextOut")
  468.  
  469.     IF MID$(DESTXF$, LEN(DESTXF$), 1) <> "\" THEN
  470.         DESTXF$ = DESTXF$ + "\"
  471.     END IF
  472.     ''Validate new path.
  473.     IF IsDirWritable(DESTXF$) = 0 THEN
  474.         GOSUB BADPATH
  475.         GOTO GETTRANSFORMPATHL1
  476.     END IF
  477.     UIPop 1
  478.  
  479.     GOTO CHECKTRANSFORMVERSION
  480.     ELSEIF sz$ = "REACTIVATE" THEN
  481.     GOTO GETTRANSFORMPATHL1
  482.     ELSEIF sz$ = "EXIT" THEN
  483.     UIPop 1
  484.     GOTO QUITTRANSFORMINSTALL
  485.     END IF
  486.  
  487. CHECKTRANSFORMVERSION:
  488.  
  489. ''***
  490. ''*** Check our version number versus version number of previously
  491. ''*** installed version (if present).
  492. ''***
  493.  
  494. ''*** We expect the .INI file to contain something like this:
  495. ''***
  496. ''***    [Version]
  497. ''***    Build=3.0.0.0
  498. ''***    Release=3.0a1
  499. ''***
  500. ''*** We use the build-version in the version check.
  501. ''*** We use the release-version in naming the PIF's.
  502. ''***
  503.  
  504.     szXFOldVer$ = GetIniKeyString(DESTXF$ + "SMOSAIC.INI", "Version", "Build")
  505.     IF szXFOldVer$ = "" or LEN(szXFOldVer$) = 0 THEN
  506.     GOTO COPYTRANSFORM
  507.     END IF
  508.  
  509.     IF szXFNewVer$ < szXFOldVer$ THEN
  510.     sz$ = UIStartDlg(CUIDLL$, INSTALLOLDER, "FInfoDlgProc", 0, "")
  511.     IF sz$ = "CONTINUE" THEN
  512.         UIPop 1
  513.     ELSE
  514.         GOTO QUITTRANSFORMINSTALL
  515.     END IF
  516.     END IF
  517.  
  518.  
  519. COPYTRANSFORM:
  520.  
  521. ''*** Copy Spyglass Transform onto hard disk 
  522.  
  523.     ClearCopyList
  524.     ClearBillboardList
  525.     CreateDir DESTXF$, cmoNone
  526.  
  527.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  528.  
  529.     ERR = 0
  530.     
  531. '' Install Microsoft Internet explorer for win95
  532.     IF BoolKernelSupports32% = 1 THEN 
  533.       szExplDir$ = GetWindowsDir()
  534.       szExplDir$ = szExplDir$ + "EXPLR.INI"
  535.       szExplPath$ = GetIniKeyString (szExplDir$, "EXPLORER", "Path")
  536.       IF  szExplPath$ <> "" THEN
  537.         CreateProgmanItem  "Net Commander", "Internet Explorer 2.0", szExplPath$, "", cmoOverwrite
  538.       END IF
  539.         
  540.  '' Install Mosaic for WIN 3.1
  541.     ELSE
  542.         AddSectionFilesToCopyList "Win32appGuitar", SrcDir$, DESTXF$
  543.  
  544.         DESTXFHELP$ = DESTXF$ + "HELP"
  545.         CreateDir DESTXFHELP$, cmoNone
  546.         AddSectionFilesToCopyList "Win32appMosaicHelp", SrcDir$, DESTXFHELP$
  547.         AddToBillboardList CUIDLL$,BILLBOARDMOSAIC,"FModelessDlgProc", 5
  548.  
  549.         CopyFilesInCopyList
  550.     END IF
  551.  
  552.     IF ERR <> 0 THEN
  553.     GOTO QUITTRANSFORMINSTALL
  554.     END IF
  555.  
  556. ''************************ BEGIN CHANGES
  557.  
  558. '' add the installation section
  559.     IF DoesFileExist( DESTXF$ + "SMOSAIC.INI", femExists ) THEN
  560.     CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite
  561.     '' update location of yellow pages
  562. ''    DESTMP1$ = "file:///" + LEFT$(DESTXF$, 1)
  563. ''    DESTMP2$ = DESTTMP1 + "|"
  564. ''    LENTMP%  = LEN(DESTXF$) - 2
  565. ''    DESTMP3$ = RIGHT$(DESTXF$, LENTMP%) + "YP\SUBJECTS.HTM"
  566. ''    DESTTYP$ = DESTMP1$ + DESTMP3$
  567. ''    CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Custom_URL_Menu", "url_1", DESTYP$, cmoOverwrite
  568.     END IF
  569.  
  570. ''****************************************************************************
  571. ''****************************************************************************
  572. ''***
  573. ''*** Start of Stack and Dialer Section.
  574. ''***
  575. ''****************************************************************************
  576. ''****************************************************************************
  577.  
  578.     DESTTCP$ = DESTXF$
  579.  
  580. '' Internet Tools Options Dialog
  581.  
  582. GETTCPTOOLS:
  583.  
  584. ''*** Get Tools to load
  585.     CHECKIN$  = "CheckItemsIn"
  586.     CHECKOUT$  = "CheckItemsOut"
  587.     OPTIONSGREY$ = "OptionsGreyed"
  588.     SetSymbolValue CHECKIN$, ""
  589.     SetSymbolValue CHECKOUT$, ""
  590.     SetSymbolValue OPTIONSGREY$, ""
  591.  
  592.     AddListItem CHECKIN$, "ON"     '' Eudora
  593.     AddListItem CHECKIN$, "ON"     '' News
  594.     AddListItem CHECKIN$, "ON"     '' WhoIs
  595.     AddListItem CHECKIN$, "ON"     '' Archie
  596.     AddListItem CHECKIN$, "ON"     '' Finger
  597.     AddListItem CHECKIN$, "ON"     '' IRC
  598.     AddListItem CHECKIN$, "ON"     '' Gopher
  599.     AddListItem CHECKIN$, "ON"     '' CuSeeMe
  600.     AddListItem CHECKIN$, "ON"     '' TrueSpeech
  601. ''    AddListItem CHECKIN$, "ON"     '' Web Install
  602.  
  603. ''    AddListItem CHECKIN$, "OFF"    '' Yellow Pages
  604. ''    AddListItem CHECKIN$, "OFF"    '' Web Search
  605.  
  606. ''    AddListItem OPTIONSGREY$, "8"  '' Yellow Pages
  607. ''    AddListItem OPTIONSGREY$, "9"  '' Web Search
  608.  
  609. GETTCPTOOLS1:
  610.  
  611. ''*** Get Tools Loop (get until valid)
  612.  
  613.     sz$ = UIStartDlg(CUIDLL$, TOOLSDLG, "FCheckDlgProc", 0, "")
  614.  
  615.     IF sz$ = "CONTINUE" THEN
  616.         item% = 1
  617.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  618.             BoolInstallEudora% = 1
  619.     ENDIF
  620.         item% = 2
  621.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  622.             BoolInstallNews% = 1
  623.     ENDIF
  624.     item% = 3
  625.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  626.             BoolInstallWhoIs% = 1
  627.     ENDIF
  628.     item% = 4
  629.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  630.             BoolInstallArchie% = 1
  631.     ENDIF
  632.     item% = 5
  633.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  634.             BoolInstallFinger% = 1
  635.     ENDIF
  636.     item% = 6
  637.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  638.             BoolInstallIRC% = 1
  639.     ENDIF
  640.     item% = 7
  641.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  642.             BoolInstallGopher% = 1
  643.     ENDIF
  644.     item% = 8
  645.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  646.             BoolInstallSeeMe% = 1  
  647.     END IF
  648.     item% = 9
  649.     IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  650.             BoolInstallTrueSpeech% = 1
  651.     ENDIF
  652. ''    item% = 9
  653. ''    IF GetListItem(CHECKOUT$, item%) = "ON" THEN
  654. ''            BoolInstallWebSearch% = 1
  655. ''    ENDIF  
  656.  
  657.  
  658.     UIPop 1
  659.  
  660.  
  661.     
  662.     
  663.     GOTO DONETOOLS
  664.     ELSEIF sz$ = "REACTIVATE" THEN
  665.     GOTO GETTCPTOOLS1
  666.     ELSEIF sz$ = "EXIT" THEN
  667.     UIPop 1
  668.     GOTO QUITTRANSFORMINSTALL
  669.     END IF
  670.  
  671. DONETOOLS:
  672.  
  673. ''*** Copy TCP Pro onto hard disk 
  674.  
  675.     ClearCopyList
  676.     ClearBillboardList
  677. ''  Already created
  678. ''    CreateDir DESTTCP$, cmoNone
  679.     DESTTCPSUB$ = DESTTCP$
  680.     SystemIniPath$ = GetWindowsDir()
  681.     SystemPath$    = GetWindowsSysDir()
  682.  
  683. '' Add Stack and Dialer files  
  684.      IF BoolKernelSupports32% = 0 THEN
  685.         AddSectionFilesToCopyList "Winsock", SrcDir$, DESTTCPSUB$
  686.     ENDIF    
  687.  
  688. '' add win95 or win3.1 stack
  689.         IF BoolKernelSupports32% = 1 THEN
  690.      AddSectionFilesToCopyList "Winsock32", SrcDir$, DESTTCPSUB$
  691.         ELSE
  692.      AddSectionFilesToCopyList "Winsock16", SrcDir$, DESTTCPSUB$
  693.         END IF
  694.  
  695. '' add Telnet, FTP and Ping
  696.     AddSectionFilesToCopyList "App", SrcDir$, DESTTCPSUB$
  697.  
  698.    IF BoolKernelSupports32% = 0 THEN
  699.         AddSectionFilesToCopyList "Ping", SrcDir$, DESTTCPSUB$
  700.    END IF
  701.  
  702. '' copy either 16 bit or 32 bit ftp version of cuteftp
  703.    IF BoolKernelSupports32% = 1 THEN
  704.      AddSectionFilesToCopyList "ftp32", SrcDir$, DESTTCPSUB$
  705.    ELSE
  706.      AddSectionFilesToCopyList "ftp16", SrcDir$, DESTTCPSUB$
  707.    END IF
  708.  
  709.  
  710. '' Add checkboxes for ftp, telnet
  711.     AddToBillboardList CUIDLL$,BILLBOARDTCPPRO,"FModelessDlgProc", 5
  712.     AddToBillboardList CUIDLL$,BILLBOARDTELNET,"FModelessDlgProc", 5
  713.     AddToBillboardList CUIDLL$,BILLBOARDFTP,"FModelessDlgProc", 5
  714.  
  715.  
  716. '' Add electronic registration
  717.     AddSectionFilesToCopyList "Register", SrcDir$, DESTTCPSUB$
  718.  
  719.     '' Add Tools (optionally)
  720.     IF BoolInstallFinger% = 1 THEN
  721.       AddSectionFilesToCopyList "Finger", SrcDir$, DESTTCPSUB$
  722.       AddToBillboardList CUIDLL$,BILLBOARDFINGER,"FModelessDlgProc", 5
  723.     END IF
  724.  
  725.     IF BoolInstallWhoIs% = 1 THEN
  726.       AddSectionFilesToCopyList "WhoIs", SrcDir$, DESTTCPSUB$
  727.       AddToBillboardList CUIDLL$,BILLBOARDWHOIS,"FModelessDlgProc", 5
  728.     END IF
  729.  
  730.     IF BoolInstallIRC% = 1 THEN
  731.       AddSectionFilesToCopyList "IRC", SrcDir$, DESTTCPSUB$
  732.       WinIniPath$ = GetWindowsDir()
  733.       AddSectionFilesToCopyList "IRCSys", SrcDir$, WinIniPath$          '' WSIRC ini file
  734.       AddToBillboardList CUIDLL$,BILLBOARDIRC,"FModelessDlgProc", 5
  735.     END IF
  736.  
  737.     IF BoolInstallGopher% = 1 THEN
  738.       AddSectionFilesToCopyList "Gopher", SrcDir$, DESTTCPSUB$
  739.       AddToBillboardList CUIDLL$,BILLBOARDGOPHER,"FModelessDlgProc", 5
  740.     END IF
  741.  
  742.     IF BoolInstallArchie% = 1 THEN
  743.       AddSectionFilesToCopyList "Archie", SrcDir$, DESTTCPSUB$
  744.       AddToBillboardList CUIDLL$,BILLBOARDARCHIE,"FModelessDlgProc", 5
  745.     END IF
  746.  
  747.     '' Add Eudora
  748.     IF BoolInstallEudora% = 1 THEN
  749.       AddSectionFilesToCopyList "Eudora", SrcDir$, DESTTCPSUB$
  750.       AddToBillboardList CUIDLL$,BILLBOARDEUDORA,"FModelessDlgProc", 5
  751.     END IF
  752.  
  753.     '' Add News
  754.     IF BoolInstallNews% = 1 THEN
  755.       AddSectionFilesToCopyList "News", SrcDir$, DESTTCPSUB$
  756.       AddSectionFilesToCopyList "NewsSys", SrcDir$, SystemIniPath$
  757.       AddToBillboardList CUIDLL$,BILLBOARDNEWS,"FModelessDlgProc", 5
  758.     END IF
  759.  
  760.     '' Add Internet Voice Chat
  761.     IF BoolInstallVoice% = 1 THEN
  762.       AddSectionFilesToCopyList "Nettalk", SrcDir$, DESTTCPSUB$
  763.       AddSectionFilesToCopyList "NettalkSys", SrcDir$, SystemPath$
  764.       AddSectionFilesToCopyList "NettalkIni", SrcDir$, SystemIniPath$
  765.       AddToBillboardList CUIDLL$,BILLBOARDVOICE,"FModelessDlgProc", 5
  766.     ELSE
  767.       AddSectionFilesToCopyList "Voice", SrcDir$, DESTTCPSUB$
  768.       AddSectionFilesToCopyList "VoiceSys", SrcDir$, SystemIniPath$
  769.       AddToBillboardList CUIDLL$,BILLBOARDVOICE,"FModelessDlgProc", 5
  770.     END IF
  771.   
  772. ''  do not install WEB INSTALL  
  773.     '' Add Web Install
  774. ''    IF BoolInstallWebInstall% = 1 THEN
  775. ''      AddSectionFilesToCopyList "WebApp", SrcDir$, DESTTCPSUB$
  776. ''      AddToBillboardList CUIDLL$,BILLBOARDWEBINSTALL,"FModelessDlgProc", 5
  777. ''    END IF
  778.  
  779.     '' Add Internet Phone
  780.     IF BoolInstallPhone% = 1 THEN
  781.       AddSectionFilesToCopyList "IPhone", SrcDir$, DESTTCPSUB$
  782. ''      AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5
  783.     END IF
  784.  
  785.     '' Add CUSEEME
  786.     IF BoolInstallSeeMe% = 1 THEN  
  787.         AddSectionFilesToCopyList "cuseeme", SrcDir$, DESTTCPSUB$
  788.         tempSys1$ = GetWindowsSysDir()
  789.         AddSectionFilesToCopyList "cuseemeSys", SrcDir$, tempSys1$
  790. ''      AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5
  791.     END IF
  792.  
  793.        AddSectionFilesToCopyList "mpeg", SrcDir$, DESTTCPSUB$
  794.     SystemPath$    = GetWindowsSysDir()
  795.     AddSectionFilesToCopyList "mpegSys", SrcDir$, SystemPath$
  796.  
  797. ''IF 0 THEN    
  798.  
  799.    '' Add TRUE SPEECH
  800.     IF BoolInstallTrueSpeech% = 1 THEN  
  801.         SourceFile$ = GetSymbolValue("STF_SRCDIR")
  802.         SourceFile$ = MID$(SourceFile$, 1, 3)
  803. ''        SourceFile$= "c:\release\"
  804.  
  805.  
  806.         DestDir$ = GetWindowsDir()
  807.     
  808.  
  809.         IF BoolKernelSupports32% = 1 THEN      
  810.               AddSectionFilesToCopyList "truesp32", SrcDir$, DESTTCPSUB$ 
  811.               SourceFile$ = SourceFile$ + "TRUESP32\TSPLAY32.INI" 
  812.               DestDir$ =   DestDir$ + "TSPLAY32.INI"
  813.               CopyFile  SourceFile$, DestDir$ , cmoNone, 0
  814.             tempDest$ = DESTTCPSUB$
  815.             IF MID$(tempDest$, LEN(tempDest$), 1) = "\" THEN
  816.                 tempDest$ = MID$(tempDest$, 1, LEN(tempDest$) - 1)
  817.             END IF
  818.               CreateIniKeyValue DestDir$, "Directory", "Path",  tempDest$ , cmoOverwrite 
  819.           ELSE
  820.             AddSectionFilesToCopyList "truesp16", SrcDir$, DESTTCPSUB$
  821.             SourceFile$ =  SourceFile$ + "TRUESP16\TSPLAYER.INI" 
  822.               DestDir$ =   DestDir$ + "TSPLAYER.INI"
  823.               CopyFile  SourceFile$, DestDir$ , cmoNone, 0 
  824.               tempDest$ = DESTTCPSUB$
  825.             IF MID$(tempDest$, LEN(tempDest$), 1) = "\" THEN
  826.                 tempDest$ = MID$(tempDest$, 1, LEN(tempDest$) - 1)
  827.             END IF
  828.               CreateIniKeyValue DestDir$, "Directory", "Path",  tempDest$ , cmoOverwrite     
  829.  
  830.         END IF    
  831.         
  832. ''      AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5
  833.     END IF
  834. ''END IF
  835.  
  836. '' Add LUCKMAN.INI file 
  837.     AddSectionFilesToCopyList "WinsockSys", SrcDir$, SystemIniPath$
  838.  
  839.    AddToBillboardList CUIDLL$,BILLBOARDCOPYING,"FModelessDlgProc", 60
  840.  
  841.     CopyFilesInCopyList
  842.  
  843.     IF ERR <> 0 THEN
  844.     GOTO QUITTRANSFORMINSTALL
  845.     END IF
  846.  
  847.     '' Update LUCKMAN.INI (remove the / at the end)
  848.     IF DoesFileExist( SystemIniPath$ + "LUCKMAN.INI", femExists ) THEN
  849.     CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "Path", DESTXF$, cmoOverwrite
  850.     CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite
  851.     CreateIniKeyValue SystemIniPath$ + "LUCKMAN.INI", "Installation", "ExplPath", szExplPath$, cmoOverwrite
  852.  
  853.     END IF
  854.  
  855.     '' Update PINAAC.INI
  856. ''    IF DoesFileExist( DESTXF$ + "PINAAC.INI", femExists ) THEN
  857.     CreateIniKeyValue DESTXF$ + "PINAAC.INI", "Installation", "Path", DESTXF$, cmoOverwrite
  858.     CreateIniKeyValue DESTXF$ + "PINAAC.INI", "Installation", "MosaicPath", DESTXF$, cmoOverwrite
  859. ''    END IF
  860.  
  861.     '' Update WEBAPP.INI
  862.     IF DoesFileExist( DESTTCP$ + "WEBAPP.INI", femExists ) THEN
  863.     CreateIniKeyValue DESTTCP$ + "WEBAPP.INI", "Options", "InitialDirectory", DESTTCP$ + "\", cmoOverwrite
  864.     CreateIniKeyValue DESTTCP$ + "WEBAPP.INI", "Options", "AutoInstallDirectory", MakePath(DESTTCP$,"\"), cmoOverwrite
  865.     END IF
  866.  
  867.     BoolWeInstalledTCPPro% = 1        ''All went well
  868.  
  869.     ''************************ END CHANGES
  870.  
  871.     ''*** We are requested to add a section to WIN32S.INI indicating that we
  872.     ''*** use Win32s and what version we think we're using.
  873.  
  874.     IF DoesFileExist( DESTSYS$ + "WIN32S.INI", femExists ) THEN
  875.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "SMosaic", "Setup", "1", cmoOverwrite
  876.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "SMosaic", "Version", szNewVer$, cmoOverwrite
  877.     END IF
  878.  
  879.     ERR = 0
  880.     CreateProgmanGroup "Net Commander", "", cmoNone
  881.     ShowProgmanGroup   "Net Commander", 1, cmoNone     
  882.  
  883.     IF BoolKernelSupports32% = 0 THEN     '' only for win 3.1
  884.         CreateProgmanGroup "Net Commander Setup", "", cmoNone
  885.         ShowProgmanGroup   "Net Commander Setup", 1, cmoNone
  886.     ENDIF
  887.         
  888.     IF BoolKernelSupports32% = 0 THEN 
  889.         CreateProgmanItem  "Net Commander", "Enhanced Mosaic", DESTXF$ + "SMOSAIC.EXE", "", cmoOverwrite
  890.     ENDIF
  891.  
  892. ''***    IF OnWindowsNT() THEN
  893. ''***    CreateProgmanItem  "Net Commander", "Mosaic Help", "WINHLP32.EXE " + DESTXF$ + "EMOSAIC.HLP", "", cmoOverwrite
  894. ''***    ELSE
  895. ''***    CreateProgmanItem  "Net Commander", "Mosaic Help", "WINHELP.EXE " + DESTXF$ + "EMOSAIC.HLP", "", cmoOverwrite
  896. ''***    END IF
  897.  
  898.     ''*** Only put up success dialog if icon added to group
  899.  
  900.     IF ERR <> 0 THEN
  901.     GOTO QUITTRANSFORMINSTALL
  902.     END IF
  903.  
  904. ''***
  905. ''*** Add Registration Icons
  906. ''***
  907.     IF BoolWeInstalledTCPPro% = 1 THEN   
  908. ''        CreateProgmanItem "Net Commander", "Connect", DESTTCP$ + "TCPMAN.EXE", "", cmoOverwrite
  909. ''    CreateProgmanItem "Net Commander", "Telnet", DESTTCP$ + "TRMPTEL.EXE", "", cmoOverwrite    
  910. ''    CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTEFTP.EXE", "", cmoOverwrite    
  911. ''    CreateProgmanItem "Net Commander", "Ping", DESTTCP$ + "TRUMPING.EXE", "", cmoOverwrite    
  912.     CreateProgmanItem "Net Commander", "Account Registration", DESTTCP$ + "PINAAC.EXE", "", cmoOverwrite
  913. ''    CreateProgmanItem "Net Commander", "Release Notes", "notepad.exe "+MakePath(DESTTCP$,"readme.txt"), "", cmoOverwrite
  914.     END IF
  915.  
  916.  
  917. ''***
  918. ''*** Add Main icons (connect, ftp, telnet, ping)
  919. ''***
  920.     IF BoolWeInstalledTCPPro% = 1 THEN 
  921.       IF BoolKernelSupports32% = 0 THEN   
  922.  
  923.           '' Connect installed for WIN95 only
  924.           szTemp1$ = DESTTCP$
  925.           szTemp$ = szTemp1$ + "connect.ico,,,," + szTemp1$
  926.           CreateProgmanItem "Net Commander", "Connect", DESTTCP$ + "TCPMAN.EXE", szTemp$, cmoOverwrite
  927.       END IF
  928.       
  929.       '' Telnet
  930.       szTemp1$ = DESTTCP$
  931.       szTemp$ = szTemp1$ + "telnet.ico,,,," + szTemp1$
  932.       CreateProgmanItem "Net Commander", "Telnet", DESTTCP$ + "TRMPTEL.EXE", szTemp$, cmoOverwrite
  933.       '' FTP
  934.       szTemp1$ = DESTTCP$
  935.       szTemp$ = szTemp1$ + "ftp.ico,,,," + szTemp1$
  936.          IF BoolKernelSupports32% = 1 THEN
  937.          CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTFTP32.EXE", szTemp$, cmoOverwrite
  938.          ELSE
  939.          CreateProgmanItem "Net Commander", "FTP", DESTTCP$ + "CUTEFTP.EXE", szTemp$, cmoOverwrite
  940.       END IF
  941.  
  942.       '' Install Ping for Windows 3.1
  943.       IF BoolKernelSupports32% = 0 THEN  '' trumpet ping does not work with Win95
  944.           szTemp1$ = DESTTCP$
  945.           szTemp$ = szTemp1$ + "ping.ico,,,," + szTemp1$
  946.           CreateProgmanItem "Net Commander", "Ping", DESTTCP$ + "TRUMPING.EXE", szTemp$, cmoOverwrite
  947.       END IF
  948.     END IF
  949.  
  950.  
  951. ''***
  952. ''*** Add Tools/Eudora Icons (optionally)
  953. ''***
  954.     IF BoolInstallFinger% = 1 THEN
  955.       szTemp1$ = DESTTCP$
  956.       szTemp$ = szTemp1$ + "finger.ico,,,," + szTemp1$
  957.       CreateProgmanItem "Net Commander", "Finger", DESTTCP$ + "MFINGER.EXE", szTemp$, cmoOverwrite
  958.     END IF
  959.  
  960.     IF BoolInstallArchie% = 1 THEN
  961.       szTemp1$ = DESTTCP$
  962.       szTemp$ = szTemp1$ + "archie.ico,,,," + szTemp1$
  963.       CreateProgmanItem "Net Commander", "Archie", DESTTCP$ + "WSARCHIE.EXE", szTemp$, cmoOverwrite
  964.     END IF
  965.  
  966.     IF BoolInstallEudora% = 1 THEN
  967.       szTemp1$ = DESTTCP$
  968.       szTemp$ = szTemp1$ + "eudora.ico,,,," + szTemp1$
  969.       CreateProgmanItem "Net Commander", "Mail", DESTTCP$ + "EUDORA.EXE", szTemp$, cmoOverwrite
  970. ''      CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Helpers", "mailto", DESTTCP$ + "WEUDORA.EXE %s", cmoOverwrite
  971.     END IF
  972.  
  973.     IF BoolInstallNews% = 1 THEN
  974.       szTemp1$ = DESTTCP$
  975.       szTemp$ = szTemp1$ + "news.ico,,,," + szTemp1$
  976.       CreateProgmanItem "Net Commander", "News", DESTTCP$ + "NX.EXE", szTemp$, cmoOverwrite
  977. ''      CreateProgmanItem "Net Commander", "News", DESTTCP$ + "NX.EXE", "", cmoOverwrite
  978.       '' add HomeDir
  979.       NXIniPath$ = GetWindowsDir()
  980.       CreateIniKeyValue NXIniPath$ + "NX.INI", "Config", "HomeDir", DESTTCP$, cmoOverwrite
  981.     END IF
  982.  
  983.     IF BoolInstallIRC% = 1 THEN
  984.       szTemp1$ = DESTTCP$
  985.       szTemp$ = szTemp1$ + "irc.ico,,,," + szTemp1$
  986.       CreateProgmanItem "Net Commander", "IRC", DESTTCP$ + "WSIRC.EXE", szTemp$, cmoOverwrite
  987.     END IF
  988.  
  989.     IF BoolInstallGopher% = 1 THEN
  990.       szTemp1$ = DESTTCP$
  991.       szTemp$ = szTemp1$ + "gopher.ico,,,," + szTemp1$
  992.       CreateProgmanItem "Net Commander", "Gopher", DESTTCP$ + "BCGOPHER.EXE", szTemp$, cmoOverwrite
  993.     END IF
  994.   
  995. ''  do not install Web Install  
  996. ''    IF BoolInstallWebInstall% = 1 THEN
  997. ''      szTemp1$ = DESTTCP$
  998. ''      szTemp$ = szTemp1$ + "install.ico,,,," + szTemp1$
  999. ''      CreateProgmanItem "Net Commander", "Web Install", DESTTCP$ + "WEBAPP.EXE", szTemp$, cmoOverwrite
  1000. ''      CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Viewers", "application/webapp", DESTTCP$ + "WEBAPP.EXE %s", cmoOverwrite
  1001. ''    END IF
  1002.  
  1003.     IF BoolInstallVoice% = 1 THEN
  1004.       CreateProgmanItem "Net Commander", "NetCall", DESTTCP$ + "NETTALK.EXE", "", cmoOverwrite    
  1005.     ELSE
  1006.       CreateProgmanItem "Net Commander", "NetCall", DESTTCP$ + "IVC.EXE", "", cmoOverwrite    
  1007.     END IF
  1008.  
  1009. ''    IF BoolInstallPhone% = 1 THEN
  1010. ''      CreateProgmanItem "Net Commander", "Internet Phone", DESTTCP$ + "IPHONE.EXE", "", cmoOverwrite    
  1011. ''    END IF
  1012.  
  1013.     IF BoolInstallSeeMe% = 1 THEN
  1014.       CreateProgmanItem "Net Commander", "CuSeeMe", DESTTCP$ + "CUSEEME.EXE", "", cmoOverwrite    
  1015.     END IF 
  1016.     
  1017.     IF BoolInstallTrueSpeech% = 1 THEN  
  1018.         IF BoolKernelSupports32% = 1 THEN      
  1019.               CreateProgmanItem "Net Commander", "TrueSpeech", DESTTCP$ + "TSPLAY32.EXE", "", cmoOverwrite    
  1020.           ELSE
  1021.             CreateProgmanItem "Net Commander", "TrueSpeech", DESTTCP$ + "TSPLAYER.EXE", "", cmoOverwrite    
  1022.         END IF    
  1023.         
  1024.       AddToBillboardList CUIDLL$,BILLBOARDPHONE,"FModelessDlgProc", 5
  1025.     END IF
  1026.         
  1027.     CreateProgmanItem "Net Commander", "MPEG Player", DESTTCP$ + "VMPEGWIN.EXE", "", cmoOverwrite    
  1028.  
  1029.     IF BoolInstallWhoIs% = 1 THEN
  1030.       szTemp1$ = DESTTCP$
  1031.       szTemp$ = szTemp1$ + "whois.ico,,,," + szTemp1$
  1032.       CreateProgmanItem "Net Commander", "WhoIs", DESTTCP$ + "WHOIS.EXE", szTemp$, cmoOverwrite    
  1033.     END IF
  1034.  
  1035. ''***
  1036. ''*** Add CD-ROM SETUPS
  1037. ''***
  1038.     
  1039.     IF BoolKernelSupports32% = 1 THEN 
  1040.         GOTO SKIPCDROMINST
  1041.     END IF
  1042.  
  1043.     SrcPath$ = GetSymbolValue("STF_SRCDIR")
  1044.     SrcDir$ = MID$(SrcPath$, 1, 3)
  1045.     
  1046. ''    SrcDir$ = "c:\release\"
  1047.     '' Acrobat Reader
  1048.     SrcFile$ = SrcDir$ + "READERAD\ACROREAD.EXE"
  1049.  
  1050.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1051.         CreateProgmanItem  "Net Commander Setup", "Acrobat Setup", SrcFile$, "", cmoOverwrite
  1052.     END IF                             
  1053.     
  1054.     '' SoftQuad Panorama
  1055.     SrcFile$ = SrcDir$ + "PANORAMA\SETUP.EXE"   
  1056.     
  1057.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1058.         CreateProgmanItem  "Net Commander Setup", "Panorama Setup", SrcFile$, "", cmoOverwrite
  1059.     END IF                             
  1060.     
  1061.  
  1062.     '' Apple QuickTime
  1063.     SrcFile$ = SrcDir$ + "QTW\SETUP.EXE"
  1064.     
  1065.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1066.         CreateProgmanItem  "Net Commander Setup", "QuickTime for Windows Setup", SrcFile$, "", cmoOverwrite
  1067.  
  1068.     END IF
  1069.     
  1070.     '' add the movie
  1071. ''    MosaicExe$ = DESTXF$ + "SMOSAIC.EXE"
  1072. ''    szTemp$ = SrcDir$ + "MOV/qtmovies.ico,,,," + DESTXF$
  1073. ''    szTemp1$ = " file:///" + MID$(SrcDir$, 1, 1) '' LEFT$(SrcDir$, 1)
  1074. ''    szTemp2$ = szTemp1$ + "|/MOV/MOVIE.HTM"
  1075. ''    CreateProgmanItem "Net Commander", "Luckman Videos", MosaicExe$ + szTemp2$, szTemp$, cmoOverwrite
  1076. ''  END IF   
  1077.     
  1078.     '' Microsoft Video for Windows
  1079.     IF BoolKernelSupports32% = 0 THEN   
  1080.  
  1081.       SrcFile$ = SrcDir$ + "VFW\SETUP.EXE"
  1082.     
  1083.       IF DoesFileExist( SrcFile$, femExists ) THEN
  1084.           CreateProgmanItem  "Net Commander Setup", "Video for Windows Setup", SrcFile$, "", cmoOverwrite
  1085.       END IF
  1086.     END IF
  1087.     
  1088.     '' Stream Works
  1089.     SrcFile$ = SrcDir$ + "STREAMWK\SETUP.EXE"
  1090.     
  1091.     IF DoesFileExist( SrcFile$, femExists ) THEN  
  1092.         CreateProgmanItem  "Net Commander Setup", "StreamWorks Setup", SrcFile$, "", cmoOverwrite
  1093.  
  1094.     END IF
  1095.     
  1096.     '' Check Free Wallet
  1097.     SrcFile$ = SrcDir$ + "WALLETCF\SETUP.EXE"
  1098.     
  1099.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1100.         CreateProgmanItem  "Net Commander Setup", "Check Free Wallet Setup", SrcFile$, "", cmoOverwrite
  1101.  
  1102.     END IF
  1103.  
  1104.  '' Mpeg Player
  1105.     SrcFile$ = SrcDir$ + "MPEG\SETUP.EXE"
  1106.     
  1107.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1108.         CreateProgmanItem  "Net Commander Setup", "Mpeg Player Setup", SrcFile$, "", cmoOverwrite
  1109.     END IF
  1110.     
  1111.     
  1112.     '' WWW Yellow Pages Setup
  1113.     SrcFile$ = SrcDir$ + "YP\SETUP.EXE"
  1114.  
  1115.  
  1116.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1117.         CreateProgmanItem  "Net Commander Setup", "WWW Yellow Pages Setup", SrcFile$, "", cmoOverwrite
  1118.     END IF     
  1119.  
  1120. '' Net Commander Manual -- only for 3.1x
  1121.  
  1122.     IF BoolKernelSupports32% = 0 THEN 
  1123.         SrcFile$ = SrcDir$ + "MANUAL\SETUP.EXE"
  1124.  
  1125.         IF DoesFileExist( SrcFile$, femExists ) THEN
  1126.             CreateProgmanItem  "Net Commander Setup", "Net Commander Manual Setup", SrcFile$, "", cmoOverwrite
  1127.         END IF      
  1128.     ENDIF
  1129.  
  1130.  
  1131. '' commented out !!!!!!!!!!!!!!!!!!!!!!!!                                         
  1132. IF 0 THEN
  1133. ''    VDOLIVE Setup
  1134.     SrcFile$ = SrcDir$ + "VDOLIVE\VDOLIVE.EXE"
  1135.  
  1136.  
  1137.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1138.         CreateProgmanItem  "Net Commander Setup", "VDOLive Player Setup", SrcFile$, "", cmoOverwrite
  1139.     END IF           
  1140.  
  1141. END IF
  1142.  
  1143. IF 0 THEN
  1144. ''    VRML Player Setup
  1145.     SrcFile$ = SrcDir$ + "VRML\DISK1\SETUP.EXE"
  1146.  
  1147.  
  1148.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1149.         CreateProgmanItem  "Net Commander Setup", "VRML Player Setup", SrcFile$, "", cmoOverwrite
  1150.     END IF           
  1151.  
  1152. END IF
  1153.  
  1154. '' commented out !!!!!!!!!!!!!!!!!!!!!!!!!
  1155. IF 0 THEN    
  1156.     '' REAL AUDIO Setup
  1157.     
  1158.     SrcFile$ = SrcDir$ + "REALAU16\RA16_2B1.EXE" 
  1159.     RAFILE$ = "\RA16_2B1.EXE"   
  1160.  
  1161.     
  1162.     IF DoesFileExist( SrcFile$, femExists ) THEN
  1163.         RADEST$ = DESTXF$ + "RAPLAYER"
  1164.          CreateDir RADEST$, cmoNone   
  1165.          RAFILE$ = RADEST$ + RAFILE$ 
  1166.          CopyFile  SrcFile$, RAFILE$ , cmoNone, 0 
  1167.         CreateProgmanItem  "Net Commander Setup", "Real Audio Setup", RAFILE$, "", cmoOverwrite
  1168.     END IF       
  1169. END IF    
  1170.     
  1171. SKIPCDROMINST:
  1172.  
  1173.     IF BoolWeInstalledTCPPro% = 1 THEN
  1174.     CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Helpers", "telnet", DESTTCP$ + "TRMPTEL.EXE %s", cmoOverwrite
  1175.     CreateIniKeyValue DESTXF$ + "SMOSAIC.INI", "Viewers", "video/mpeg", DESTTCP$ + "VMPEGWIN.EXE %s", cmoOverwrite
  1176.     END IF                               
  1177.  
  1178.  
  1179.  
  1180. ''*** If running under Windows 95, execute PINAAC.EXE and return
  1181.  
  1182. ''***
  1183. ''*** Add electronic registration to WIN.INI "load" keyword
  1184. ''***
  1185.     IF BoolWeInstalledWin32s% = 1 THEN
  1186.         sz$ = GetIniKeyString ("WIN.INI", "windows", "load")
  1187.     szTemp$ = MakePath(DESTXF$, "PINAAC.EXE")
  1188. ''      Does not work with Trumpet
  1189. ''    IF DoesFileExist( szTemp$, femExists ) THEN
  1190. ''            CreateIniKeyValue "WIN.INI", "windows", "load", sz$ + " " + szTemp$, cmoOverwrite
  1191. ''    END IF
  1192.     END IF
  1193.  
  1194. ''***
  1195. ''*** if we installed Win32s, then we must force a reboot of the system.
  1196. ''***
  1197.  
  1198.     IF BoolWeInstalledWin32s% = 0 THEN
  1199.        IF BoolKernelSupports32% = 0 THEN 
  1200.             sz$ = UIStartDlg(CUIDLL$, TRANSFORMINSTALLED, "FInfoDlgProc", 0, "") 
  1201.        ELSE
  1202.                sz$ = UIStartDlg(CUIDLL$, TRANSFORMINSTALLED32, "FInfoDlgProc", 0, "") 
  1203.        ENDIF
  1204.                       
  1205.  
  1206. ''      IF BoolKernelSupports32% = 0 THEN     
  1207. ''         start the registration
  1208. ''        szTemp$ = MakePath(DESTXF$, "PINAAC.EXE")
  1209. ''         Under Windows 3.1 start the Registration (no good for Trumpet)
  1210. ''        i% = WinExec(szTemp$, 1)
  1211. ''      END IF
  1212.     ELSE
  1213.     sz$ = UIStartDlg(CUIDLL$, RESTARTINGWINDOWS, "FInfoDlgProc", 0, "")
  1214.     RebootSystem
  1215.     ''***
  1216.     ''*** We survived a 'reboot'; something must be wrong.  Panic.
  1217.     ''***
  1218.     CreateIniKeyValue DESTSYS$ + "WIN32S.INI", "Win32s", "Setup", "0", cmoOverwrite
  1219.     i% = DoMsgBox("Win32s is not properly configured and Win32s Setup must be run again.", "Unable to Restart Windows", MB_ICONEXCLAMATION+MB_OK+MB_TASKMODAL)
  1220.     END IF
  1221.     END
  1222.  
  1223. ''****************************************************************************
  1224. ''****************************************************************************
  1225. ''***
  1226. ''*** Spyglass Transform Error Handling.
  1227. ''***
  1228. ''****************************************************************************
  1229. ''****************************************************************************
  1230.  
  1231. QUITTRANSFORMINSTALL:
  1232.     ON ERROR GOTO ERRQUIT
  1233.     IF ERR = STFQUIT THEN
  1234.     i% = DoMsgBox("Terminating Net Commander installation.","Net Commander Setup", MB_OK+MB_TASKMODAL)
  1235.     END IF
  1236.     i% = DoMsgBox("Net Commander has not been installed.","Net Commander Setup", MB_OK+MB_TASKMODAL)
  1237.     END
  1238.  
  1239. ERRNORMALTRANSFORM:
  1240.     IF ERR = STFQUIT THEN
  1241.     GOTO QUITTRANSFORMINSTALL
  1242.     END IF
  1243.     RESUME NEXT
  1244.  
  1245.  
  1246.  
  1247. '*************************************************************************
  1248. '*************************************************************************
  1249. '***
  1250. '*** QUIT -- Initial error handler (until we define our own).
  1251. '***
  1252. '*************************************************************************
  1253. '*************************************************************************
  1254.  
  1255. QUIT:
  1256.     IF ERR <> STFQUIT THEN
  1257.     i% = DoMsgBox("Unable to start Setup.","Enhanced Mosaic Setup", MB_OK+MB_TASKMODAL)
  1258.     END IF
  1259.     END
  1260.  
  1261.  
  1262.  
  1263. '*************************************************************************
  1264. '*************************************************************************
  1265. '***
  1266. '*** BADPATH
  1267. '***
  1268. '*************************************************************************
  1269. '*************************************************************************
  1270.  
  1271. BADPATH:
  1272.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  1273.     IF sz$ = "REACTIVATE" THEN
  1274.     GOTO BADPATH
  1275.     END IF
  1276.     UIPop 1
  1277.     RETURN
  1278.  
  1279.  
  1280.  
  1281. '*************************************************************************
  1282. '*************************************************************************
  1283. '***
  1284. '*** ASKQUIT
  1285. '***
  1286. '*************************************************************************
  1287. '*************************************************************************
  1288.  
  1289. ASKQUIT:
  1290.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  1291.  
  1292.     IF sz$ = "EXIT" THEN
  1293.     UIPopAll
  1294.     ERROR STFQUIT
  1295.     ELSEIF sz$ = "REACTIVATE" THEN
  1296.     GOTO ASKQUIT
  1297.     ELSE
  1298.     UIPop 1
  1299.     END IF
  1300.     RETURN
  1301.  
  1302.  
  1303.  
  1304.  
  1305. '*************************************************************************
  1306. '*************************************************************************
  1307. '**
  1308. '** DoWin32sInstallation
  1309. '**
  1310. '** Purpose:
  1311. '**     Builds the copy list and performs all installation operations.
  1312. '** Arguments:
  1313. '**     none.
  1314. '** Returns:
  1315. '**     none.
  1316. '**
  1317. '*************************************************************************
  1318. '*************************************************************************
  1319.  
  1320. SUB DoWin32sInstallation STATIC
  1321.  
  1322.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  1323.  
  1324.     AddSectionFilesToCopyList "WindowsSystem", SrcDir$, DESTSYS$
  1325.     AddSectionFilesToCopyList "WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\"
  1326.  
  1327.     '' Add obsolete files to be removed
  1328.     AddSectionFilesToCopyList "Win32sSystemObsoleteFiles", SrcDir$, DESTSYS$ + "WIN32S\"
  1329.  
  1330.     SetRestartDir GetWindowsDir()
  1331.  
  1332.     CopyFilesInCopyList
  1333.  
  1334. END SUB
  1335.  
  1336.  
  1337.  
  1338. '**************************************************************************
  1339. '**************************************************************************
  1340. '**
  1341. '** UpdateSystemIni
  1342. '**
  1343. '**************************************************************************
  1344. '**************************************************************************
  1345.  
  1346. SUB UpdateSystemIni STATIC
  1347.  
  1348.     VxDPath$ = DEST32S$ + "W32S.386"
  1349.     SystemIniPath$ = GetWindowsDir()
  1350.  
  1351.     t% = MakeSystemIni(SystemIniPath$, VxdPath$)
  1352.  
  1353. END SUB
  1354.  
  1355.  
  1356.  
  1357. '**************************************************************************
  1358. '**************************************************************************
  1359. '**
  1360. '** RebootSystem
  1361. '**
  1362. '**************************************************************************
  1363. '**************************************************************************
  1364.  
  1365. SUB RebootSystem STATIC
  1366.  
  1367. '   Check if any files were locked during install.  If the RestartList
  1368. '   is not empty, ExitExecRestart() will restart Windows, cleanup setup
  1369. '   files, and copy over locked files before Windows restarts.
  1370.     i% = RestartListEmpty()
  1371.     IF i% = 0 THEN
  1372. '      ExitExecRestart() only returns if applications refuse to be shutdown.
  1373. '      Win32s is installed but will not operate until Windows is restarted
  1374. '      and the Win32s VxD is loaded.
  1375.        i% = ExitExecRestart()
  1376.      ELSE
  1377. '      If the RestartList list is empty, it is necessary to restart windows
  1378. '      directly.  The MSSETUP program creates _MSRSTRT.EXE and _MSSETUP.BAT
  1379. '      in the restart directory.  This program should be exec'd to handle
  1380. '      proper MSSETUP cleanup (temp files) and restart Windows.
  1381.        i% = ExitWindowsExec( GetWindowsDir() + "_MSRSTRT.EXE", "_MSSETUP.BAT" )
  1382.      END IF
  1383.  
  1384. END SUB
  1385.  
  1386.  
  1387.  
  1388. '**************************************************************************
  1389. '**************************************************************************
  1390. '**
  1391. '** MakePath
  1392. '**
  1393. '** Purpose:
  1394. '**     Appends a file name to the end of a directory path,
  1395. '**     inserting a backslash character as needed.
  1396. '** Arguments:
  1397. '**     szDir$  - full directory path (with optional ending "\")
  1398. '**     szFile$ - filename to append to directory
  1399. '** Returns:
  1400. '**     Resulting fully qualified path name.
  1401. '*************************************************************************
  1402. '**************************************************************************
  1403.  
  1404. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  1405.     IF szDir$ = "" THEN
  1406.     MakePath = szFile$
  1407.     ELSEIF szFile$ = "" THEN
  1408.     MakePath = szDir$
  1409.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  1410.     MakePath = szDir$ + szFile$
  1411.     ELSE
  1412.     MakePath = szDir$ + "\" + szFile$
  1413.     END IF
  1414. END FUNCTION
  1415.